1
硬件排序难题
AI032Lesson 7
00:00

在高性能硬件中,速度就是生命。想象一下GPU执行 Z缓冲:它必须每秒对数百万个深度值进行排序,以确定哪个像素在前方。为了实现这一点,工程师依赖于 无符号数值比较器,一种精简的电路,能够从最高有效位(MSB)到最低有效位(LSB)处理比特,无需任何认知开销。

补码表示的失败

标准补码无法通过这种“傻硬件”的测试。因为负数的符号位为1,正数的符号位为0,所以像-1(111...)在按位比较时看起来比+1(001...)更大。这造成了一个 不连续性,迫使硬件使用复杂且更慢的条件逻辑来判断数值大小。

单调性解决方案

为了恢复效率,我们采用 偏移编码 (偏置表示)。通过调整数值范围,使最小可能值映射为 000... 而最大值映射为 111...,我们确保比特模式能唯一标识一个数值,其 字典序 与数值顺序完全一致。

图 7.1:补码失败图 7.2:偏移-3 获胜十进制 | 比特-1 | 111 0 | 000逻辑跳跃!十进制 | 比特-3 | 000-2 | 001-1 | 010 0 | 011单调递增

这一特性使得“傻”硬件比较器可以即时处理“聪明”的浮点数据。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>